package com.yanqu.road.entity.activity.deepfishing;

import com.yanqu.road.entity.DataObject;
import com.yanqu.road.entity.DataStatus;
import com.yanqu.road.entity.FieldTypeAnnotation;
import com.yanqu.road.entity.activity.deepfishing.entity.DeepFishingBagItemData;
import com.yanqu.road.entity.activity.deepfishing.entity.DeepFishingBeachCombItemData;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@FieldTypeAnnotation(tableName = "t_u_deep_fishing_user",desc = "深海觅诊玩家数据")
public class DeepFishingUserData extends DataObject {
    @FieldTypeAnnotation(desc = "活动id",select = true,update = true)
    private int activityId;
    @FieldTypeAnnotation(desc = "玩家id",select = true,update = true)
    private long userId;
    @FieldTypeAnnotation(desc = "赶海当前所在地图 可以循环")
    private int beachCombLevel;         //赶海当前所在地图 可以循环
    @FieldTypeAnnotation(desc = "地图最后刷新时间")
    private long beachCombLastRefreshTime;     //地图最后刷新时间
    @FieldTypeAnnotation(desc = "赶海在当前地图的特殊奖励次数")
    private int beachCombSpecialThisLevel;      //赶海在当前地图的特殊奖励次数
    @FieldTypeAnnotation(desc = "赶海当前地图已经特殊奖励次数")
    private int beachCombHasSpecialThisLevel;   //赶海当前地图已经特殊奖励次数
    @FieldTypeAnnotation(desc = "赶海当前地图奖励map")
    private Map<Integer, DeepFishingBeachCombItemData> beachCombMap;  //赶海当前地图奖励map
    @FieldTypeAnnotation(desc = "赶海的体力")
    private int beachCombPower;              //赶海的体力
    @FieldTypeAnnotation(desc = "最后计算赶海体力的时间")
    private long lastRecoveryBeachCombPowerTime;     //最后计算赶海体力的时间
    @FieldTypeAnnotation(desc = "钓鱼到达最深米数")
    private int fishingReachMaxMeter;              //钓鱼到达最深米数
    @FieldTypeAnnotation(desc = "钓鱼buff id 剩余次数")
    private Map<Integer,Integer> fishingBuffMap;        //钓鱼buff id 剩余次数
    @FieldTypeAnnotation(desc = "吊杆配件 id 等级")
    private Map<Integer,Integer> fishingRodParts;       //吊杆配件 id 等级
    @FieldTypeAnnotation(desc = "钓鱼币(只用来冲榜和游戏内升级,这里是可以消耗的)")
    private long fishingCoins;                           //钓鱼币(只用来冲榜和游戏内升级,这里是可以消耗的)
    @FieldTypeAnnotation(desc = "钓鱼体力")
    private int fishingPower;                           //钓鱼体力
    @FieldTypeAnnotation(desc = "最后恢复钓鱼体力的时间")
    private long lastRecoveryFishingPowerTime;          //最后恢复钓鱼体力的时间
    @FieldTypeAnnotation(desc = "玩家状态 未开始0 开始为1")
    private int fishingGameStatus;                  //玩家状态 未开始0 开始为1
    @FieldTypeAnnotation(desc = "未加成的最高金币")
    private int noBuffBiggestCoin;                  //未加成的最高金币
    @FieldTypeAnnotation(desc = "最好的一次钓鱼记录")
    private List<DeepFishingBagItemData> bestAutoRecord;    //最好的一次钓鱼记录
    @FieldTypeAnnotation(desc = "本次活动的兑换积分,不同于背包内的兑换积分,仅用于展示不用与其他")
    private long scoreThisActivity;
    @FieldTypeAnnotation(desc = "是否触发完成过新手固定流程")
    private boolean triggerGuide;

    //缓存的事件 顺便用于比对是否掉线了
    private List<Integer> cacheEvent = new ArrayList<>();

    public int getActivityId() {
        return activityId;
    }
    public void setActivityId(int activityId) {
        if (this.activityId != activityId) {
            this.activityId = activityId;
            setOp(DataStatus.Update);
        }
    }

    public long getUserId() {
        return userId;
    }
    public void setUserId(long userId) {
        if (this.userId != userId) {
            this.userId = userId;
            setOp(DataStatus.Update);
        }
    }

    public int getBeachCombLevel() {
        return beachCombLevel;
    }
    public void setBeachCombLevel(int beachCombLevel) {
        if (this.beachCombLevel != beachCombLevel) {
            this.beachCombLevel = beachCombLevel;
            setOp(DataStatus.Update);
        }
    }

    public long getBeachCombLastRefreshTime() {
        return beachCombLastRefreshTime;
    }
    public void setBeachCombLastRefreshTime(long beachCombLastRefreshTime) {
        if (this.beachCombLastRefreshTime != beachCombLastRefreshTime) {
            this.beachCombLastRefreshTime = beachCombLastRefreshTime;
            setOp(DataStatus.Update);
        }
    }

    public int getBeachCombSpecialThisLevel() {
        return beachCombSpecialThisLevel;
    }
    public void setBeachCombSpecialThisLevel(int beachCombSpecialThisLevel) {
        if (this.beachCombSpecialThisLevel != beachCombSpecialThisLevel) {
            this.beachCombSpecialThisLevel = beachCombSpecialThisLevel;
            setOp(DataStatus.Update);
        }
    }

    public int getBeachCombHasSpecialThisLevel() {
        return beachCombHasSpecialThisLevel;
    }
    public void setBeachCombHasSpecialThisLevel(int beachCombHasSpecialThisLevel) {
        if (this.beachCombHasSpecialThisLevel != beachCombHasSpecialThisLevel) {
            this.beachCombHasSpecialThisLevel = beachCombHasSpecialThisLevel;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.deepfishing.entity.DeepFishingBeachCombItemData> getBeachCombMap() {
        return beachCombMap;
    }
    public void setBeachCombMap(java.util.Map<java.lang.Integer, com.yanqu.road.entity.activity.deepfishing.entity.DeepFishingBeachCombItemData> beachCombMap) {
        if (null == beachCombMap){
            return;
        }
        if (this.beachCombMap == null || !this.beachCombMap.equals(beachCombMap)) {
            this.beachCombMap = beachCombMap;
            setOp(DataStatus.Update);
        }
    }

    public int getBeachCombPower() {
        return beachCombPower;
    }
    public void setBeachCombPower(int beachCombPower) {
        if (this.beachCombPower != beachCombPower) {
            this.beachCombPower = beachCombPower;
            setOp(DataStatus.Update);
        }
    }

    public long getLastRecoveryBeachCombPowerTime() {
        return lastRecoveryBeachCombPowerTime;
    }
    public void setLastRecoveryBeachCombPowerTime(long lastRecoveryBeachCombPowerTime) {
        if (this.lastRecoveryBeachCombPowerTime != lastRecoveryBeachCombPowerTime) {
            this.lastRecoveryBeachCombPowerTime = lastRecoveryBeachCombPowerTime;
            setOp(DataStatus.Update);
        }
    }

    public int getFishingReachMaxMeter() {
        return fishingReachMaxMeter;
    }
    public void setFishingReachMaxMeter(int fishingReachMaxMeter) {
        if (this.fishingReachMaxMeter != fishingReachMaxMeter) {
            this.fishingReachMaxMeter = fishingReachMaxMeter;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, java.lang.Integer> getFishingBuffMap() {
        return fishingBuffMap;
    }
    public void setFishingBuffMap(java.util.Map<java.lang.Integer, java.lang.Integer> fishingBuffMap) {
        if (null == fishingBuffMap){
            return;
        }
        if (this.fishingBuffMap == null || !this.fishingBuffMap.equals(fishingBuffMap)) {
            this.fishingBuffMap = fishingBuffMap;
            setOp(DataStatus.Update);
        }
    }

    public java.util.Map<java.lang.Integer, java.lang.Integer> getFishingRodParts() {
        return fishingRodParts;
    }
    public void setFishingRodParts(java.util.Map<java.lang.Integer, java.lang.Integer> fishingRodParts) {
        if (null == fishingRodParts){
            return;
        }
        if (this.fishingRodParts == null || !this.fishingRodParts.equals(fishingRodParts)) {
            this.fishingRodParts = fishingRodParts;
            setOp(DataStatus.Update);
        }
    }

    public long getFishingCoins() {
        return fishingCoins;
    }
    public void setFishingCoins(long fishingCoins) {
        if (this.fishingCoins != fishingCoins) {
            this.fishingCoins = fishingCoins;
            setOp(DataStatus.Update);
        }
    }

    public int getFishingPower() {
        return fishingPower;
    }
    public void setFishingPower(int fishingPower) {
        if (this.fishingPower != fishingPower) {
            this.fishingPower = fishingPower;
            setOp(DataStatus.Update);
        }
    }

    public long getLastRecoveryFishingPowerTime() {
        return lastRecoveryFishingPowerTime;
    }
    public void setLastRecoveryFishingPowerTime(long lastRecoveryFishingPowerTime) {
        if (this.lastRecoveryFishingPowerTime != lastRecoveryFishingPowerTime) {
            this.lastRecoveryFishingPowerTime = lastRecoveryFishingPowerTime;
            setOp(DataStatus.Update);
        }
    }

    public int getFishingGameStatus() {
        return fishingGameStatus;
    }
    public void setFishingGameStatus(int fishingGameStatus) {
        if (this.fishingGameStatus != fishingGameStatus) {
            this.fishingGameStatus = fishingGameStatus;
            setOp(DataStatus.Update);
        }
    }

    public int getNoBuffBiggestCoin() {
        return noBuffBiggestCoin;
    }
    public void setNoBuffBiggestCoin(int noBuffBiggestCoin) {
        if (this.noBuffBiggestCoin != noBuffBiggestCoin) {
            this.noBuffBiggestCoin = noBuffBiggestCoin;
            setOp(DataStatus.Update);
        }
    }

    public java.util.List<com.yanqu.road.entity.activity.deepfishing.entity.DeepFishingBagItemData> getBestAutoRecord() {
        return bestAutoRecord;
    }
    public void setBestAutoRecord(java.util.List<com.yanqu.road.entity.activity.deepfishing.entity.DeepFishingBagItemData> bestAutoRecord) {
        if (null == bestAutoRecord){
            return;
        }
        if (this.bestAutoRecord == null || !this.bestAutoRecord.equals(bestAutoRecord)) {
            this.bestAutoRecord = bestAutoRecord;
            setOp(DataStatus.Update);
        }
    }

    public long getScoreThisActivity() {
        return scoreThisActivity;
    }

    public void setScoreThisActivity(long scoreThisActivity) {
        if (this.scoreThisActivity != scoreThisActivity){
            this.scoreThisActivity = scoreThisActivity;
            setOp(DataStatus.Update);
        }
    }

    public boolean isTriggerGuide() {
        return triggerGuide;
    }

    public void setTriggerGuide(boolean triggerGuide) {
        if (this.triggerGuide != triggerGuide){
            this.triggerGuide = triggerGuide;
            setOp(DataStatus.Update);
        }
    }

    public List<Integer> getCacheEvent() {
        return cacheEvent;
    }

    public void setCacheEvent(List<Integer> cacheEvent) {
        this.cacheEvent = cacheEvent;
    }

    public DeepFishingUserData() {
    }
}
